// utils/routerInterceptor.js

export function setupRouterInterceptor() {
    // 白名单页面: 登录、注册页面
    const whiteList = [
        "/pages/login/login", 
        "/pages/register/index"
    ];

    const list = ["navigateTo", "redirectTo", "reLaunch", "switchTab"];

    list.forEach(item => {
        uni.addInterceptor(item, {
            invoke(e) {
                // 获取 token
                const token = sessionStorage.getItem('token') || '';
        
                // 获取要跳转的页面路径
                const url = e.url.split('?')[0];

                // 判断是否在白名单
                if (whiteList.includes(url)) {
                    return true; // 白名单页面直接放行
                }

                // 如果没有 token，跳转到登录页面
                if (!token) {
                    uni.showToast({
                        title: '请先登录',
                        icon: 'none',
                    });

                    // 跳转到登录页面
                    setTimeout(() => {
                        uni.reLaunch({
                            url: "/pages/login/login" // 确保用户无法通过返回按钮回到需要登录的页面
                        });
                    }, 1000);

                    return false; // 阻止路由跳转
                }

                return true; // 放行
            },
            fail(err) {
                console.error('路由失败:', err);
            }
        });
    });
}
